namespace ETestIT.Core
{
    using NHibernate.Validator.Constraints;
    using SharpArch.Core.DomainModel;

    public class Position : Entity
    {
        public Position()
        {
        }

        [NotNull]
        public virtual JobTitle TheJobTitle { get; set; }
        
        [NotNull]
        public virtual Client TheComapny { get; set; }

        [Min(1)]
        public virtual int Duration { get; set; }

        [NotNullNotEmpty]
        public virtual string KeySkills { get; set; }

        [NotNullNotEmpty]
        public virtual string Location { get; set; }

        [NotNullNotEmpty]
        public virtual string Description { get; set; }
        
        public virtual PositionType ThePosition { get; set; }
    }

    public enum PositionType
    {
        Contract,
        ContractToHire,
        FullTime
    }
}